/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package desktop;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author KrooS
 */
public class Conex {
     // nombre del controlador de JDBC y URL de la base de datos
   static final String CONTROLADOR = "com.mysql.jdbc.Driver";
   static final String URL_BASEDATOS = "jdbc:mysql://localhost/globalhealth";
   static final String NOMBRE_USUARIO = "root";
   static final String CONTRA = "";

   Connection conexion;
   Statement instruccion;
   ResultSet resultados;
   PreparedStatement consulta;

   // inicia la aplicación
   public  Conex (  ) throws ClassNotFoundException, SQLException
   {
      conexion = null; // maneja la conexión
      instruccion = null; // instrucción de consulta
      resultados = null; // maneja los resultados
      consulta=null;
     
         // carga la clase controlador
         Class.forName( CONTROLADOR );
         conexion =DriverManager.getConnection( URL_BASEDATOS, NOMBRE_USUARIO, CONTRA );

         instruccion=conexion.createStatement();
   } // contructor

   
public  int consulta() throws SQLException
   {
       int id_boleta=0;
       resultados=instruccion.executeQuery("select  id_boleta from recetas_vendidas order by id_boleta desc limit 1");
       while(resultados.next())
       {
          id_boleta=resultados.getInt("id_boleta");
          return id_boleta;
       }
       return id_boleta;

   }
   
 public  int consulta1(Object nombre) throws SQLException
   {
       int id_prod=0;
       resultados=instruccion.executeQuery("select  b.id_producto from producto_pendiente as a,productos as b where a.nombre= b.nombre and a.nombre='"+nombre+"'");
       while(resultados.next())
       {
          id_prod=resultados.getInt("id_producto");
          return id_prod;
       }
       return id_prod;

   }
   
    public List p_Activos() throws SQLException
           {
               List activos = new ArrayList();
               String principios;
               resultados = instruccion.executeQuery("select distinct nombre from principio_activo");

               while(resultados.next()){
                principios = resultados.getString("nombre");
                activos.add(principios);
                }
               return activos;

           }

    public void insertar_prod(String nombre, int cantidad, int precio) throws SQLException
    {
        consulta = conexion.prepareStatement("INSERT INTO `productos`"+
                "(`nombre`, `stock`, `precio`)"+
                "VALUES (?, ?, ?)");
        consulta.setString(1, nombre);
        consulta.setInt(2, cantidad);
        consulta.setInt(3, precio);

        consulta.executeUpdate();
        
    }
    public void editar_prod_vnt_cantidad(String colum, Object id_prod, int dato) throws SQLException
    {
      instruccion.executeUpdate("UPDATE `globalhealth`.`producto_pendiente` SET `"+colum+"`="+dato+" WHERE `id_prod_pend`='"+id_prod+"'");
                            //UPDATE `farma`.`producto_pendiente` SET `cant_prod`=11 WHERE `id_prod_pend`='9';
    }
     public void editar_prod_vnt_nombre( Object id_prod, String dato) throws SQLException
    {
        instruccion.executeUpdate("UPDATE `globalhealth`.`producto_pendiente` SET `nombre`='"+dato+"' WHERE `id_prod_pend`='"+id_prod+"'");
        //UPDATE `farma`.`producto_pendiente` SET `nombre`='tapzin' WHERE `id_prod_pend`='3';
     }

     public void eliminar_receta_pend(Object id_receta) throws SQLException
     {
         instruccion.executeUpdate("DELETE FROM `globalhealth`.`recetas_pendientes` WHERE `id_receta`='"+id_receta+"'");
        //DELETE FROM `farma`.`recetas_pendientes` WHERE `id_receta`='5';
     }

     public void agregar_receta_vnd( String fecha, String rut) throws SQLException
     {
        consulta = conexion.prepareStatement("INSERT INTO `recetas_Vendidas`"+
                "(`fecha_venta`, `rut_cliente`)"+
                "VALUES (?, ?)");
        consulta.setString(1, fecha);
        consulta.setString(2, rut);

        consulta.executeUpdate();

     }
     

public void ingresar_productos_vend( Object nombre, Object cantidad) throws SQLException
     {
         int id = consulta();
         int id1= consulta1(nombre);
         int can= Integer.parseInt(cantidad.toString());
        
             consulta = conexion.prepareStatement("INSERT INTO `prods_vendidos`"+
                "(`id_boleta`, `id_producto`,`cantidad`)"+
                "VALUES (?, ?, ?)");
        consulta.setInt(1,  id);
        consulta.setInt(2, id1);
        consulta.setInt(3, can);

        consulta.executeUpdate();

     }



     public void modificar_stock( Object id_prod, Object cantidad) throws SQLException
     {
        
             //UPDATE `farma`.`productos` SET `stock`=477 WHERE `id_producto`='3';
            instruccion.executeUpdate("UPDATE `globalhealth`.`productos` SET `stock`="+cantidad+" WHERE `id_producto`='"+id_prod+"'");
          
         
     }
     
     public void editar_prod_stock (int dato, Object id_prod) throws SQLException
     {
        instruccion.executeUpdate("UPDATE `globalhealth`.`productos` SET `stock`='"+dato+"' WHERE `id_producto`='"+id_prod+"'"); 
     }
     
     public void editar_prod_precio (int dato, Object id_prod) throws SQLException
     {
        instruccion.executeUpdate("UPDATE `globalhealth`.`productos` SET `precio`='"+dato+"' WHERE `id_producto`='"+id_prod+"'"); 
     }

     public void borrar_prod_pend (Object id_boleta) throws SQLException
     {
        instruccion.executeUpdate("DELETE FROM `globalhealth`.`producto_pendiente` WHERE `id_receta`='"+id_boleta+"'"); 
     }
     

   

}
